#pragma  once
#include "precompiled.h"
#pragma hdrstop 

#ifndef _myGlExtensions_
#define _myGlExtensions_

// Declare Global Variables for all the ARB extensions we need.
extern PFNGLACTIVETEXTUREPROC				glActiveTexture					;
extern PFNGLCREATEPROGRAMOBJECTARBPROC		glCreateProgramObjectARB		;
extern PFNGLDELETEOBJECTARBPROC			glDeleteObjectARB				;
extern PFNGLUSEPROGRAMOBJECTARBPROC		glUseProgramObjectARB			;
extern PFNGLCREATESHADEROBJECTARBPROC		glCreateShaderObjectARB			;
extern PFNGLSHADERSOURCEARBPROC			glShaderSourceARB				;
extern PFNGLCOMPILESHADERARBPROC			glCompileShaderARB				;
extern PFNGLGETOBJECTPARAMETERIVARBPROC	glGetObjectParameterivARB		;
extern PFNGLATTACHOBJECTARBPROC			glAttachObjectARB				;
extern PFNGLGETINFOLOGARBPROC				glGetInfoLogARB					;
extern PFNGLLINKPROGRAMARBPROC				glLinkProgramARB				;
extern PFNGLGETUNIFORMLOCATIONARBPROC		glGetUniformLocationARB			;
extern PFNGLUNIFORM4FARBPROC				glUniform4fARB					;
extern PFNGLUNIFORM3FARBPROC				glUniform3fARB					;
extern PFNGLUNIFORM1FARBPROC				glUniform1fARB					;
extern PFNGLUNIFORM1IARBPROC				glUniform1iARB					;
extern PFNGLUNIFORMMATRIX4FVPROC			glUniformMatrix4fv				;
extern PFNGLBINDATTRIBLOCATIONARBPROC		glBindAttribLocationARB			;
extern PFNGLGENVERTEXARRAYSPROC				glGenVertexArrays				;
extern PFNGLBINDVERTEXARRAYPROC				glBindVertexArray				;
extern PFNGLDELETEVERTEXARRAYSPROC			glDeleteVertexArrays			;
extern PFNGLGENBUFFERSARBPROC				glGenBuffers					;
extern PFNGLBUFFERDATAARBPROC				glBufferData					;
extern PFNGLBINDBUFFERARBPROC				glBindBuffer					;
extern PFNGLBUFFERSUBDATAPROC				glBufferSubData					;
extern PFNGLVERTEXATTRIBPOINTERPROC			glVertexAttribPointer			;
extern PFNGLENABLEVERTEXATTRIBARRAYPROC		glEnableVertexAttribArray		;
extern PFNGLUSEPROGRAMPROC					glUseProgram					;
extern PFNGLDISABLEVERTEXATTRIBARRAYPROC	glDisableVertexAttribArray		;
extern PFNGLDELETEPROGRAMPROC				glDeleteProgram					;
extern PFNGLDETACHSHADERPROC				glDetachShader					;
extern PFNGLDELETEBUFFERSPROC				glDeleteBuffers					;
extern PFNGLDELETESHADERPROC				glDeleteShader					;
extern PFNGLDRAWRANGEELEMENTSPROC			glDrawRangeElements				;
extern PFNGLGENFRAMEBUFFERSEXTPROC			glGenFramebuffersEXT				;
extern PFNGLBINDFRAMEBUFFEREXTPROC			glBindFramebufferEXT			;
extern PFNGLDELETEFRAMEBUFFERSEXTPROC		glDeleteFramebuffersEXT				;
extern PFNGLGENRENDERBUFFERSEXTPROC			glGenRenderbuffersEXT			;
extern PFNGLRENDERBUFFERSTORAGEEXTPROC		glRenderbufferStorageEXT		;
extern PFNGLBINDRENDERBUFFEREXTPROC			glBindRenderbufferEXT			;
extern PFNGLDELETERENDERBUFFERSEXTPROC		glDeleteRenderbuffersEXT		;
extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC		glFramebufferTexture2DEXT		;
extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC	glFramebufferRenderbufferEXT	;
extern PFNGLDRAWBUFFERSARBPROC				glDrawBuffersARB				;
extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC	glCheckFramebufferStatusEXT		;

void loadExtensions();

#endif // _myGlExtensions_